SPB Git forge

spb/immbot-ai

Public
1commits 1branches 0releases
1.5 MBsize
maindefault branch
20 days agolast push
TypeScript 98.3% CSS 0.9% Shell 0.7%
1.1 KB · 27 lines typescript
Raw Blame History
1// Liste des jeux de diapositives d'un cours (séances, titres, nombre de diapos).2import { NextResponse } from "next/server";3import { apiError, requireEnrollment } from "@/lib/api.ts";4import { requireUser } from "@/lib/auth/session.ts";5import { all } from "@/lib/db/index.ts";6import { normalizeCourse } from "@/lib/learning/helpers.ts";78export async function GET(_req: Request, ctx: { params: Promise<{ course: string }> }) {9  try {10    const user = await requireUser();11    const course = normalizeCourse((await ctx.params).course);12    requireEnrollment(user.id, course);13    const decks = all<{ week: number; title: string; slides: number; sections: number }>(14      `SELECT d.week, d.title,15              COUNT(c.id) as slides,16              COUNT(DISTINCT NULLIF(c.section_title, '')) as sections17       FROM documents d JOIN chunks c ON c.document_id = d.id18       WHERE d.course_code = ? AND d.doc_type = 'slides' AND d.visible_to_students = 119       GROUP BY d.id ORDER BY d.week`,20      course21    );22    return NextResponse.json({ decks });23  } catch (e) {24    return apiError(e);25  }26}27